/**
 * Autogenerated by Thrift Compiler (0.19.0)
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 */
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Thrift;
using Thrift.Collections;
using Thrift.Protocol;


#nullable enable                 // requires C# 8.0
#pragma warning disable IDE0079  // remove unnecessary pragmas
#pragma warning disable IDE0017  // object init can be simplified
#pragma warning disable IDE0028  // collection init can be simplified
#pragma warning disable IDE1006  // parts of the code use IDL spelling
#pragma warning disable CA1822   // empty DeepCopy() methods still non-static

namespace QueryCat.Plugins.Sdk
{
  public static class QueryCatExtensions
  {
    public static bool Equals(this Dictionary<string, global::QueryCat.Plugins.Sdk.VariantValue> instance, object that)
    {
      if (that is not Dictionary<string, global::QueryCat.Plugins.Sdk.VariantValue> other) return false;
      if (ReferenceEquals(instance, other)) return true;

      return TCollections.Equals(instance, other);
    }


    public static int GetHashCode(this Dictionary<string, global::QueryCat.Plugins.Sdk.VariantValue> instance)
    {
      return TCollections.GetHashCode(instance);
    }


    public static bool Equals(this List<global::QueryCat.Plugins.Sdk.Column> instance, object that)
    {
      if (that is not List<global::QueryCat.Plugins.Sdk.Column> other) return false;
      if (ReferenceEquals(instance, other)) return true;

      return TCollections.Equals(instance, other);
    }


    public static int GetHashCode(this List<global::QueryCat.Plugins.Sdk.Column> instance)
    {
      return TCollections.GetHashCode(instance);
    }


    public static bool Equals(this List<global::QueryCat.Plugins.Sdk.Function> instance, object that)
    {
      if (that is not List<global::QueryCat.Plugins.Sdk.Function> other) return false;
      if (ReferenceEquals(instance, other)) return true;

      return TCollections.Equals(instance, other);
    }


    public static int GetHashCode(this List<global::QueryCat.Plugins.Sdk.Function> instance)
    {
      return TCollections.GetHashCode(instance);
    }


    public static bool Equals(this List<global::QueryCat.Plugins.Sdk.KeyColumn> instance, object that)
    {
      if (that is not List<global::QueryCat.Plugins.Sdk.KeyColumn> other) return false;
      if (ReferenceEquals(instance, other)) return true;

      return TCollections.Equals(instance, other);
    }


    public static int GetHashCode(this List<global::QueryCat.Plugins.Sdk.KeyColumn> instance)
    {
      return TCollections.GetHashCode(instance);
    }


    public static bool Equals(this List<global::QueryCat.Plugins.Sdk.VariantValue> instance, object that)
    {
      if (that is not List<global::QueryCat.Plugins.Sdk.VariantValue> other) return false;
      if (ReferenceEquals(instance, other)) return true;

      return TCollections.Equals(instance, other);
    }


    public static int GetHashCode(this List<global::QueryCat.Plugins.Sdk.VariantValue> instance)
    {
      return TCollections.GetHashCode(instance);
    }


    public static bool Equals(this List<int> instance, object that)
    {
      if (that is not List<int> other) return false;
      if (ReferenceEquals(instance, other)) return true;

      return TCollections.Equals(instance, other);
    }


    public static int GetHashCode(this List<int> instance)
    {
      return TCollections.GetHashCode(instance);
    }


    public static bool Equals(this List<string> instance, object that)
    {
      if (that is not List<string> other) return false;
      if (ReferenceEquals(instance, other)) return true;

      return TCollections.Equals(instance, other);
    }


    public static int GetHashCode(this List<string> instance)
    {
      return TCollections.GetHashCode(instance);
    }


  }
}
